package com.cangshi.service;


import com.cangshi.entity.GoodsType;
import com.cangshi.entity.Group;
import com.cangshi.entity.GroupUserKey;
import com.cangshi.entity.User;

import java.util.List;

/**
 * Created by Eoly on 2017/1/16.
 */
public interface GroupUserService {



    /**
     * 根据团-用户关系表中 指定查找类型的id 查找 与之对应的 指定查找结果类型 的id
     * @param record 赋予指定id的实体UserGroup
     * @return 存放指定查找结果类型的所有符合条件关系的列表
     */
    List<GroupUserKey> findIdByRequestId(GroupUserKey record);

    /**
     * 根据团id和用户id删除指定团-用户关系
     * @param record 指定两个id的关系
     * @return 操作结果
     */
    int deleteByGroupIdAndUserId(GroupUserKey record);

    /**
     * 添加一条团-用户关系
     * @param groupUserKey 团用户关系实体
     * @return 操作结果
     */
    int addUserGroup(GroupUserKey groupUserKey);

    /**
     * 根据团-用户关系表中 指定查找类型的id 与之对应的 id的总数
     * 只输入团id，获得这个团id对应参团人数
     * 只输入用户id，获得这个用户id参加的团的数量
     * @param record
     * @return
     */
    Integer getTheNumberGroupJoinedOrUserOwned(GroupUserKey record);

    /**
     * 通过团id获取所有参团的用户
     * @param groupId
     * @return
     */
    List<User> getAllUsersByGroupId(Integer groupId);

    /**
     * 通过用户id 获取已参加的团（按发团时间排序）
     * @param userId
     * @param checkGroup 筛选团条件
     * @param line  从第几条开始
     * @param next  获取几条
     * @return
     */
    List<Group> findGroupsByUserIdCheckAndLimit(Integer userId, Group checkGroup ,Integer line,Integer next);

    /**
     * 通过用户id 获取已有关的团（按发团时间排序）
     * @param userId
     * @param checkGroup 筛选团条件
     * @param line  从第几条开始
     * @param next  获取几条
     * @return
     */
    List<Group> findAllGroupsByUserIdCheckAndLimit(Integer userId, Group checkGroup ,Integer line,Integer next);
}
